package com.chanzany.interview_secondary.jvm.jvm_02_ParaXX;
/**
XX参数：
 Boolean类型：
    公式：-XX:+(-) properties 开启(关闭)某个属性值
    case:
            -XX:+PrintGCDetails 开启运行时打印GC详情

 K-V设值类型：
    公式:-XX:属性Key=属性值value
    case:
            -XX:MetaspaceSize=128m 设置元空间(永久带)大小为128M
            -XX:MaxTenuringThreshold=15 设置最大养老年龄阈值jp

 打印JVM默认值：
    -XX:+PrintFlagsInitial      查看初始默认,即出厂设置(=)
    -XX:+PrintFlagsFinal        查看修改更新(:=)
    -XX:+PrintCommandLineFlags( -version) 查看命令行参数

如何查看JVM参数：
    方式1: jinfo -flag 参数名 程序进程号      查看某个参数的设置情况
    方式2: jinfo -flags 程序进程号            查看所有参数的设置情况

 -Xms = -XX:InitialHeapSize
 -Xmx = -XX:MaxHeapSize
 */
public class HelloGC {
    public static void main(String[] args) throws InterruptedException {
        /*System.out.println("***Hello GC");
        Thread.sleep(Integer.MAX_VALUE);*/
        byte[] bytes = new byte[1024*1024*50]; // 50 MB的对象

    }

    public static void getHeapMemory() {
        long totalMemory = Runtime.getRuntime().totalMemory();
        long maxMemory = Runtime.getRuntime().maxMemory();
        System.out.println("Initial Heap Memory(-Xms)="+
                totalMemory+
                "(字节)"+
                totalMemory/(double)(1024*1024)+
                "(MB)"+"\tis the 1/64 of computer memory");
        System.out.println("Max Heap Memory(-Xmx)="+
                maxMemory+
                "(字节)"+
                maxMemory/(double)(1024*1024)+
                "(MB)"+"\tis the 1/4 of computer memory");
    }
}
